package org.nf.product.service.impl;


import org.nf.product.dao.ProductDAO;
import org.nf.product.dao.impl.ProductDaoImpl;
import org.nf.product.model.Product;
import org.nf.product.service.ProductService;
import org.nf.product.util.PageUtils;
import org.nf.product.vo.PageVO;

import java.util.List;

public class ProductServiceImpl implements ProductService {
    private ProductDAO productDAO = new ProductDaoImpl();

    /**
     * 添加产品数据
     * @param product
     * @return
     */
    @Override
    public int insert(Product product) {
        return productDAO.insertProduct(product);
    }

    /**
     * 通过产品名称查询
     * @param productName
     * @return
     */
    @Override
    public List<Product> selectProductName(String productName) {

        return productDAO.selectProductName(productName);
    }

    /**
     * 查询产品全部
     * @param product
     * @return
     */
    @Override
    public List<Product> listProduct(Product product) {
        return productDAO.listProduct(product);
    }

    /**
     * 通过分页查询
     * @param page 第几页
     * @param limit 查多少条
     * @return
     */


    @Override
    public PageVO<List<Product>> listProductPage(int page, int limit) {
        Product product = new Product();
        //先根据page计算出从表的第几条开始查询
        int numberOf = PageUtils.toNumberOf(page, limit);
        //创建DAO实例
        ProductDAO dao = new ProductDaoImpl();
        List<Product> list = dao.listProductPage(product,page, limit);
        Long count = dao.countProduct();
        //将数据封装成PageVO对象并返回
        return PageUtils.toPageVO(list, count);

    }
}
